package datatypes.r2.foundation;

import datatypes.r2.flavors.ST_SIMPLE;
import datatypes.r2.quantities.INT;

public interface LIST<T> extends COLL<T> {
	T head();

	LIST<T> tail();

	T item(INT index);

	INT length();

	LIST<T> subList(INT start, INT end);

	LIST<T> subList(INT start);

	ST_SIMPLE literal();

	LIST<T> promotion(T x);

	BAG<T> demotion();
}
